home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 2005 October
/
PCWOCT05.iso
/
Software
/
FromTheMag
/
Ant Movie Catalog 3.5.0.2
/
amc_install.exe
/
{app}
/
Scripts
/
netpiac.hu.ifs
< prev
next >
Wrap
Text File
|
2005-03-13
|
9KB
|
312 lines
(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=Zoltan Karpati (<link>pinyo@gibzone.hu</link>)
Title=NetPiac.hu
Description=NetPiac.hu (HUN) import
Site=http://www.netpiac.hu
Language=HU
Version=1.0
Requires=3.5.0
Comments=
License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. |
GetInfo=1
[Options]
***************************************************)
program netpiac;
var
MovieName: string;
function RemoveHTML(Szoveg: string): String;
begin
HTMLRemovetags(Szoveg);
HTMLDecode(Szoveg);
Szoveg := StringReplace(Szoveg, '%20', ' ');
Szoveg := StringReplace(Szoveg, '<i>', '');
Szoveg := StringReplace(Szoveg, '</i>', '');
Szoveg := StringReplace(Szoveg, '<b>', '');
Szoveg := StringReplace(Szoveg, '</b>', '');
Szoveg := StringReplace(Szoveg, '</p>', '');
Szoveg := StringReplace(Szoveg, ' ', ' ');
Szoveg := StringReplace(Szoveg, ' ', ' ');
result := Trim(Szoveg);
end;
function AddHTML(Szoveg: string): String;
begin
Szoveg := StringReplace(Szoveg, ' ','%20');
result := Szoveg;
end;
function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
var
i: Integer;
begin
result := -1;
if StartAt < 0 then
StartAt := 0;
for i := StartAt to List.Count-1 do
if Pos(Pattern, List.GetString(i)) <> 0 then
begin
result := i;
Break;
end;
end;
procedure AnalyzePage(Address: string);
var
Page: TStringList;
LineNr: Integer;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
if pos('<!--tΘtel eleje-->', Page.Text) = 0 then
begin
AnalyzeMoviePage(Page)
end else
begin
PickTreeClear;
LineNr := 0;
LineNr := FindLine('<!--tΘtel eleje-->', Page, LineNr);
if LineNr > -1 then
begin
PickTreeAdd('DVD filmek:', '');
AddMoviesTitles(Page, LineNr);
end;
if PickTreeExec(Address) then
AnalyzePage(Address);
end;
Page.Free;
end;
procedure AnalyzeMoviePage(Page: TStringList);
var
Line, Value, Value2, FullValue: string;
LineNr: Integer;
Adder: Integer;
Rate: Integer;
BeginPos, EndPos: Integer;
begin
// fieldURL
LineNr := FindLine('<!--SHOP MODUL ELEJE', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr+4);
BeginPos := pos('termek_id', Line)+18;
EndPos := pos('">', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
SetField(fieldURL, 'http://www.netpiac.hu/display/index.phtml?do=termek&termek_id=' + Value);
end;
// fieldSource
SetField(fieldSource,'NetPiac.hu');
// fieldMediaType
SetField(fieldMediaType, 'DVD');
// fieldTranslatedTitle fieldOriginalTitle fieldCategory fieldYear fieldCountry
LineNr := FindLine('<!--kΘpkontΘner vΘge', Page, 0);
if LineNr > -1 then
begin
LineNr := FindLine('ib2">', Page, LineNr);
Line := Page.GetString(LineNr);
BeginPos := pos('ib2">', Line)+5;
EndPos := pos('</span>', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
SetField(fieldTranslatedTitle,RemoveHTML(Value));
Delete(Line,1,EndPos);
BeginPos := pos('ib3">', Line)+5;
EndPos := pos('<br>', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
SetField(fieldOriginalTitle,RemoveHTML(Value));
Delete(Line,1,EndPos+3);
EndPos := pos('</span>', Line);
FullValue := copy(Line, 1, EndPos-1);
EndPos := pos(',',FullValue);
Value := copy(FullValue, 1, EndPos-1);
SetField(fieldCategory, RemoveHTML(Value));
Delete(FullValue,1,EndPos+1);
EndPos := pos('-',FullValue);
Value := copy(FullValue, 1, EndPos-1);
SetField(fieldYear,RemoveHTML(Value));
Delete(FullValue,1,EndPos+1);
EndPos := pos('film',FullValue);
Value := copy(FullValue, 1, EndPos-1);
SetField(fieldCountry,RemoveHTML(Value));
end;
// fieldDirector
LineNr := FindLine('Rendezte:', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
BeginPos := pos('class="ib2">', Line) + 12;
EndPos := pos('</span></a>', Line)-1;
Value := copy(Line, BeginPos, EndPos - BeginPos);
SetField(fieldDirector, RemoveHTML(Value));
end;
// fieldActors
LineNr := FindLine('F⌡szerepben: ', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
BeginPos := pos('F⌡szerepben: ', Line) + 12;
Delete(Line,1, BeginPos);
FullValue := Line;
repeat
LineNr := LineNr + 1;
Line := Page.GetString(LineNr);
FullValue := FullValue + Line;
until Line = '<br><br>';
SetField(fieldActors, RemoveHTML(FullValue));
end;
// fieldProducer - studi≤
LineNr := FindLine('St·di≤/Forgalmaz≤:', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
BeginPos := pos('St·di≤/Forgalmaz≤:', Line);
Delete(Line,1,BeginPos);
BeginPos := pos('top">', Line)+5;
EndPos := pos('</td></tr>', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
SetField(fieldProducer,RemoveHTML(Value));
end;
// fieldLanguages
LineNr := FindLine('>Hang: <', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
BeginPos := pos('>Hang: <', Line);
Delete(Line,1,BeginPos);
BeginPos := pos('top">', Line)+5;
EndPos := pos('</td></tr>', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
SetField(fieldLanguages,RemoveHTML(Value));
end;
// fieldComments Kepformatum
LineNr := FindLine('KΘp : ', Page, 0);
FullValue := '';
if LineNr > -1 then
begin
repeat
LineNr := LineNr + 1;
Line := Page.GetString(LineNr);
BeginPos := pos('<td class="txt">', Line);
if BeginPos > 0 then
begin
Delete(Line,1,BeginPos+16);
FullValue := FullValue + RemoveHTML(Line);
end;
until (pos('</tr>', Line) > 0);
SetField(fieldComments,RemoveHTML(FullValue));
end;
// fieldSubtitles Kepformatum
LineNr := FindLine('Felirat nyelv:', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
BeginPos := pos('Felirat nyelv:', Line);
Delete(Line,1,BeginPos+13);
EndPos := pos('</td></tr>', Line);
Value := copy(Line, 1, EndPos);
SetField(fieldSubtitles,RemoveHTML(Value));
end;
// fieldLength
LineNr := FindLine('Hossza:', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr+1);
BeginPos := pos('"txt">', Line)+6;
EndPos := pos(' perc', Line);
Value := copy(Line, BeginPos, EndPos-BeginPos);
SetField(fieldLength,RemoveHTML(Value));
end;
// Picture
LineNr := FindLine('/display/pop.phtml?pic', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
BeginPos := pos('<img src="', Line)+9;
Delete(Line, 1, BeginPos);
EndPos := pos('" h', Line);
Value := copy(Line, 1, EndPos - 1);
GetPicture('http://www.netpiac.hu' + Value);
end;
// fieldDescription
LineNr := FindLine('<!--SHOP MODUL V╔GE', Page, 0);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr + 1);
SetField(fieldDescription, RemoveHTML(Line));
end;
//DisplayResults;
end;
procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer);
var
Line: string;
MovieTitle, MovieAddress: string;
StartPos: Integer;
EndPos: Integer;
begin
LineNr := 0;
repeat
LineNr := FindLine('<!--tΘtel eleje-->', Page, LineNr);
LineNr := LineNr + 1 ;
Line := Page.GetString(LineNr);
StartPos := pos('a href="', Line);
if StartPos > 0 then
begin
EndPos := pos('"><img', Line);
MovieAddress := copy(Line, StartPos + 8, EndPos-StartPos-8);
StartPos := pos('"navu">', Line);
Delete(Line, 1, StartPos+6);
EndPos := pos('</a></td>', Line);
MovieTitle := copy(Line, 1, EndPos-1);
PickTreeAdd(MovieTitle, 'http://www.netpiac.hu' + MovieAddress);
end;
until LineNr = 0;
end;
begin
if CheckVersion(3,5,0) then
begin
MovieName := GetField(fieldOriginalTitle);
if MovieName = '' then
MovieName := GetField(fieldTranslatedTitle);
if Input('Importßlßs a NetPiac.hu-r≤l', 'A film cφme:', MovieName) then
begin
AnalyzePage('http://www.netpiac.hu/display/index.phtml?limit=40&style=1&do=talalatok&do2=gyors&ujkereses=1&hol=3&szoveg='+AddHTML(MovieName));
end;
end else
ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
end.